package com.hs.srm.admin.modules.pricemanagement.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hs.srm.base.common.annotation.DictMapping;
import com.hs.srm.base.common.base.CloneableEntity;
import com.hs.srm.base.common.utils.DictDataUtil;
import com.hs.srm.base.common.utils.DictDataUtil.DictType;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;



@Setter
@Getter
@TableName("inquiry_header")
@ToString
public class InquiryHeaderEntity implements Serializable, CloneableEntity<InquiryHeaderEntity> {

  private static final long serialVersionUID = 1L;
  
  public static final int STATE_CAOGAO = 0x00000000;// 草稿
  public static final int STATE_BAOJIADANYICHANSHENG = 0x00000001;// 报价单以产生
  
  public InquiryHeaderEntity() {
	super();
  }
  
  /*
   * 询价单主键ID
  */
  @TableId(value = "inquiry_id", type = IdType.UUID)
  @TableField("inquiry_id")
  @Excel(name = "询价单主键ID", orderNum="1")
  private java.lang.String inquiryId;
  
  /*
   * 汇总号
  */
  @TableField("inquiry_total_code")
  @Excel(name = "汇总号", orderNum="2")
  private java.lang.String inquiryTotalCode;
  
  /*
   * 公司代码
  */
  @TableField("company_code")
  @Excel(name = "公司代码", orderNum="3")
  @DictMapping(type=DictType.GC)
  private java.lang.String companyCode;
  
  /*
   * 采购组织
  */
  @TableField("purchase_org")
  @Excel(name = "采购组织", orderNum="4")
  @DictMapping(type=DictType.CGZZ)
  private java.lang.String purchaseOrg;
  
  /*
   * 采购组
  */
  @TableField("purchase_grp")
  @Excel(name = "采购组", orderNum="5")
  @DictMapping(type=DictType.CGZ)
  private java.lang.String purchaseGrp;
  
  /*
   * 语言编码
  */
  @TableField("language")
  @Excel(name = "语言编码", orderNum="6")
  private java.lang.String language;
  
  /*
   * 采购凭证类型
  */
  @TableField("purchase_type")
  @Excel(name = "采购凭证类型", orderNum="7")
  private java.lang.String purchaseType;
  
  /*
   * 货币
  */
  @TableField("currency")
  @Excel(name = "货币", orderNum="8")
  @DictMapping(type= DictDataUtil.DictType.BZ)
  private java.lang.String currency;
  
  /*
   * 询价开始日期
  */
  @TableField("begin_date")
  @Excel(name = "询价开始日期", orderNum="9")
  //@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
  @JSONField(format="yyyy-MM-dd HH:mm:ss")
  private java.sql.Date beginDate;
  
  /*
   * 报价截止日期
  */
  @TableField("end_date")
  @Excel(name = "报价截止日期", orderNum="10")
  //@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
  @JSONField(format="yyyy-MM-dd HH:mm:ss")
  private java.sql.Date endDate;
  
  /*
   * 抬头备注
  */
  @TableField("remark")
  @Excel(name = "抬头备注", orderNum="11")
  private java.lang.String remark;
  
  /*
   * 抬头附件
  */
  @TableField("attachment")
  @Excel(name = "抬头附件", orderNum="12")
  private java.lang.String attachment;
  
  /*
   * 记录的创建日期
  */
  @TableField("creation_date")
  @Excel(name = "记录的创建日期", orderNum="13")
  @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
  private java.sql.Date creationDate;
  
  /*
   * 创建者
  */
  @TableField("created_by")
  @Excel(name = "创建者", orderNum="14")
  private java.lang.String createdBy;
  
  /*
   * 修改日期
  */
  @TableField("last_update_date")
  @Excel(name = "修改日期", orderNum="15")
  @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
  private java.sql.Timestamp lastUpdateDate;
  
  /*
   * 修改人
  */
  @TableField("last_updated_by")
  @Excel(name = "修改人", orderNum="16")
  private java.lang.String lastUpdatedBy;
  
  /*
   * 删除标识
  */
  @TableField("delete_flag")
  @Excel(name = "删除标识", orderNum="17")
  private java.lang.String deleteFlag;
  
  /*
   * 状态
  */
  @TableField("state")
  @Excel(name = "状态", orderNum="18")
  private int state;
  
  /*
   * 版本号
  */
  @TableField("edition")
  @Excel(name = "版本号", orderNum="19")
  private java.lang.Integer edition;
  
  /*
   * 
  */
  @TableField("request_code")
  @Excel(name = "", orderNum="20")
  private java.lang.String requestCode;
  
  /*
   * 
  */
  @TableField("attribute3")
  @Excel(name = "", orderNum="21")
  private java.lang.String attribute3;
  
  /*
   * 
  */
  @TableField("attribute4")
  @Excel(name = "", orderNum="22")
  private java.lang.String attribute4;
  
  /*
   * 
  */
  @TableField("attribute5")
  @Excel(name = "", orderNum="23")
  private java.lang.String attribute5;
  
  /*
   * 
  */
  @TableField("attribute6")
  @Excel(name = "", orderNum="24")
  private java.lang.String attribute6;
  
  /*
   * 
  */
  @TableField("attribute7")
  @Excel(name = "", orderNum="25")
  private java.lang.String attribute7;
  
  /*
   * 
  */
  @TableField("attribute8")
  @Excel(name = "", orderNum="26")
  private java.lang.String attribute8;
  
  /*
   * 
  */
  @TableField("attribute9")
  @Excel(name = "", orderNum="27")
  private java.lang.String attribute9;
  
  /*
   * 
  */
  @TableField("attribute10")
  @Excel(name = "", orderNum="28")
  private java.lang.String attribute10;
  
  @TableField(exist = false)
  private List<InquiryItemEntity> inquiryItemEntity;
  @TableField(exist = false)
  private List<InquiryVendorEntity> inquiryVendorEntity;


  @Override
  public InquiryHeaderEntity clone() {
    try {
      return (InquiryHeaderEntity) super.clone();
    } catch (CloneNotSupportedException ex) {
      // TODO Auto-generated catch block
      ex.printStackTrace();
    }
    return null;
  }
}
